客戶端和服務器之間的距離會顯著影響客戶端體驗的加載時間。基于該假設,最大化用戶體驗的可靠方法是在全球戰(zhàn)略位置放置多臺服務器來托管網(wǎng)站。盡管從理論上講,這種解決方案可行,但實際上效率很低。將整個網(wǎng)站托管在多臺服務器上只會占用額外的空間,而沒有一個好的目的。因此,創(chuàng)建了一種類似但更有效和優(yōu)化的方法。它被命名為 CDN,代表內(nèi)容交付網(wǎng)絡。
什么是內(nèi)容交付網(wǎng)絡?
CDN 是 Content Delivery Network 的縮寫,是一種用于根據(jù)用戶的地理位置更快、更有效地將內(nèi)容從您的網(wǎng)站交付給用戶的方法。簡而言之,它是一個位于許多地理位置的服務器網(wǎng)絡,可改善靜態(tài)和流媒體內(nèi)容的交付。在地理上距離請求內(nèi)容的用戶最近的 CDN 服務器被命名為“邊緣服務器”。當用戶請求通過 CDN 提供的某個網(wǎng)頁時,其內(nèi)容存儲在邊緣服務器上,從而使節(jié)點之間的延遲最小化。這可確保為用戶提供最佳的在線體驗。它通過在多個服務器上緩存內(nèi)容并根據(jù)距離將其定向到用戶來實現(xiàn)。此內(nèi)容可以是從 Web 對象和可下載對象到實時流媒體的任何內(nèi)容。要了解有關 CDN 的更多信息,請查看 這篇文章。
CDN 如何工作?
為了避免因慢速服務造成用戶不滿意,CDN 將內(nèi)容移近用戶,以減少延遲并改善用戶體驗。從理論上講,這是整潔、優(yōu)雅且不言自明的。然而,在實踐中,存在一些非常棘手的技術挑戰(zhàn)。
首先,為了減少任何特定用戶的延遲,CDN 必須有一個內(nèi)容緩存服務器——一個緩存——離他們很近。不幸的是,為每個可能的互聯(lián)網(wǎng)用戶都擁有一個附近的緩存是不可行的。相反,我們將緩存組織到 PoP 中,將它們分布在大的地理區(qū)域(歐洲、美國、亞洲等),然后將它們放置在這些區(qū)域內(nèi)的主要人口中心。
接下來,給定單個用戶的請求,CDN 必須將其定向到最近的 POP。大多數(shù) CDN 通過利用一種稱為 GeoIP 的技術來做到這一點。GeoIP 可以被認為是一個將 IP 地址映射到地理區(qū)域(國家、城市等)的大型查找表。在處理請求時,CDN 將引用該表并將用戶的流量定向到最近的可用服務器。
使用 CDN 有什么好處?
每天有大量流量的網(wǎng)站可以利用 CDN 來發(fā)揮自己的優(yōu)勢。它不僅有助于減少延遲,而且還減輕了原始服務器的一些負載,因為請求將被定向到 CDN 服務器。
改進的性能
這是內(nèi)容交付網(wǎng)絡的主要和最吸引人的特征。選擇 CDN 的網(wǎng)站可以將加載時間減少多達 50%,在某些情況下甚至可以減少 50%。CDN 通過以下方式增強您的內(nèi)容交付:
- 最大限度地減少內(nèi)容的存儲位置和需要發(fā)送的位置之間的距離。
- 減少文件大小以優(yōu)化網(wǎng)站加載速度。
- 優(yōu)化服務器基礎設施以更快地響應用戶請求。
更好的可靠性
眾所周知,計算機和服務器并不完美。服務器出現(xiàn)故障,網(wǎng)絡變得擁擠,連接可能會中斷。即使出現(xiàn)上述任何問題,CDN 也允許網(wǎng)站為用戶提供不間斷的服務。
內(nèi)容交付網(wǎng)絡平衡網(wǎng)絡流量的負載,確保沒有一臺服務器過度擁擠。如果單個服務器確實發(fā)生故障,CDN 可以啟動“故障轉移”過程,讓備份服務器發(fā)揮主導作用。
節(jié)省金錢
CDN 減少網(wǎng)站運營商支出??的主要方式是減少進出源服務器的次數(shù)。因為 CDN 緩存網(wǎng)站上的大部分內(nèi)容并從緩存中提供這些內(nèi)容,所以源服務器不必一遍又一遍地傳送相同的內(nèi)容。相反,CDN 代表源服務器執(zhí)行此操作。
網(wǎng)絡托管服務提供商通常會向網(wǎng)站收取傳入和傳出網(wǎng)絡托管服務商的數(shù)據(jù)的費用。傳輸?shù)臄?shù)據(jù)越多,成本就越高。人們通常將這些費用稱為“帶寬成本”,盡管“帶寬”實際上是指網(wǎng)絡容量。
但是,當 CDN 代表源服務器提供網(wǎng)站的大部分內(nèi)容時,需要傳輸?shù)臄?shù)據(jù)就少得多。更少的用戶請求到達源服務器,因為 CDN 處理了大部分請求。出于同樣的原因,從源服務器發(fā)出的內(nèi)容更少,從而降低了帶寬成本。
DDoS 防護
然而,它并不止于此,使用 CDN 還可以提高您的安全性,因為它提供 DDoS 和機器人保護。它是網(wǎng)站基礎設施的最外層,也是流量的第一個接收者。攻擊甚至在到達源服務器之前就被檢測到并被阻止。
實時統(tǒng)計
最后,內(nèi)容交付網(wǎng)絡能夠顯示實時負載統(tǒng)計數(shù)據(jù)、優(yōu)化每個客戶的容量、顯示活動區(qū)域、指示哪些資產(chǎn)受歡迎,并向客戶報告查看詳細信息。
CDN實施
既然您知道 CDN 是什么及其優(yōu)勢,您可能會認為為您的站點設置內(nèi)容交付網(wǎng)絡可能是一項艱巨的工作,公平地說,如果您自己做所有事情,那么肯定是這樣。但是,如果您采用更簡單、更有效的方式讓專業(yè)服務為您完成,那么對于大多數(shù)網(wǎng)站來說,CDN 非常容易實現(xiàn),在其核心,您只需要告訴您的內(nèi)容交付網(wǎng)絡選擇哪些文件(通常是靜態(tài)資源)它應該鏡像并配置您的站點以將這些文件的請求發(fā)送到 CDN 進行處理。如果您使用流行的內(nèi)容管理系統(tǒng)(即 CMS),例如 WordPress 或 Drupal,您可以利用現(xiàn)有的眾多插件之一將您的站點設置為 CDN 提供商,而不會遇到太多困難。其他實現(xiàn)可能需要您修改 DNS 記錄并更改域的名稱服務器。